import os.path
class IImprimible(object):
	
	"""
	Interfaz que es implementada por todos los objetos que tienen una representacion grafica en el GUI.
	@since: 4/14/2011
	@version: 1.0
	"""
	
	__imagen=""
	""" Nombre del archivo de imagen a desplegar """
	
	def __init__(self, imagen=""):
		"""
		Constructor
		@type	self: IImprimible
		@param	self: referencia al objeto IImprimible actual
		"""
		self.__imagen=imagen

	def getImagen(self):
		"""
		Metodo para obtener la URL absoluta de las imagenes segun las propiedades (banderas que esten activadas)
		@type	self: IImprimible
		@param	self: referencia al objeto IImprimible actual
		"""
		
		# Ejemplo para regresar el sprite especifico segun la propiedad encontrada
		# las propiedades se deben colocar en orden de prioridad o se deben hacer
		# las combinaciones logicas necesarias ejemplo: no roto y encendido
		#try:
		#	
		#	if self._roto:
		#		return os.path.abspath("imagenes/rendereados/roto/" + self.__imagen)
		#		
		#except AttributeError:
		#	pass
			
		return os.path.abspath("imagenes/rendereados/" + self.__imagen)
		
	def getImagenMochila(self):
		"""
		Metodo para obtener la URL absoluta de la imagen en la mochila del IImprimible actual
		@type	self: IImprimible
		@param	self: referencia al objeto IImprimible actual
		"""
		return os.path.abspath("imagenes/mochila/" + self.__imagen)
		
	def getImagenSelected(self):
		"""
		Metodo para obtener la URL absoluta de la imagen del IImprimible actual cuando este ha sido seleccionado en el canvas
		@type	self: IImprimible
		@param	self: referencia al objeto IImprimible actual
		"""
		return os.path.abspath("imagenes/selected/" + self.__imagen)
		
	def getImagenMochilaSelected(self):
		"""
		Metodo para obtener la URL absoluta de la imagen del IImprimible actual cuando este ha sido seleccionado en la mochila / show_panel
		@type	self: IImprimible
		@param	self: referencia al objeto IImprimible actual
		"""
		return os.path.abspath("imagenes/mochila_selected/" + self.__imagen)
		
	def getsImagen(self):
		"""
		Metodo para obtener el nombre del archivo de la imagen del IImprimible actual
		@type	self: IImprimible
		@param	self: referencia al objeto IImprimible actual
		"""
		return self.__imagen

	def setImagen(self, imagen):
		"""
		Metodo para asignar el nombre del archivo de la imagen del IImprimible actual
		@type	self: IImprimible
		@param	self: referencia al objeto IImprimible actual
		
		@type	imagen: string
		@param	imagen: nombre del nuevo archivo de imagen para el IImprimible actual.
		"""
		self.__imagen=imagen
